home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_perl.idb / usr / freeware / catman / p_man / cat3 / CPAN.Z / CPAN
Encoding:
Text File  |  1998-10-28  |  25.1 KB  |  727 lines

  1.  
  2.  
  3.  
  4.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.       CPAN - query,    download and build perl    modules    from CPAN
  10.       sites
  11.  
  12.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.       Interactive mode:
  14.  
  15.         perl -MCPAN    -e shell;
  16.  
  17.       Batch    mode:
  18.  
  19.         use    CPAN;
  20.  
  21.         autobundle,    clean, install,    make, recompile, test
  22.  
  23.  
  24.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  25.       The CPAN module is designed to automate the make and install
  26.       of perl modules and extensions. It includes some searching
  27.       capabilities and knows how to    use Net::FTP or    LWP (or    lynx
  28.       or an    external ftp client) to    fetch the raw data from    the
  29.       net.
  30.  
  31.       Modules are fetched from one or more of the mirrored CPAN
  32.       (Comprehensive Perl Archive Network) sites and unpacked in a
  33.       dedicated directory.
  34.  
  35.       The CPAN module also supports    the concept of named and
  36.       versioned 'bundles' of modules. Bundles simplify the
  37.       handling of sets of related modules. See BUNDLES below.
  38.  
  39.       The package contains a session manager and a cache manager.
  40.       There    is no status retained between sessions.    The session
  41.       manager keeps    track of what has been fetched,    built and
  42.       installed in the current session. The    cache manager keeps
  43.       track    of the disk space occupied by the make processes and
  44.       deletes excess space according to a simple FIFO mechanism.
  45.  
  46.       All methods provided are accessible in a programmer style
  47.       and in an interactive    shell style.
  48.  
  49.       IIIInnnntttteeeerrrraaaaccccttttiiiivvvveeee MMMMooooddddeeee
  50.  
  51.       The interactive mode is entered by running
  52.  
  53.           perl -MCPAN -e shell
  54.  
  55.       which    puts you into a    readline interface. You    will have the
  56.       most fun if you install Term::ReadKey    and Term::ReadLine to
  57.       enjoy    both history and command completion.
  58.  
  59.       Once you are on the command line, type 'h' and the rest
  60.  
  61.  
  62.  
  63.      Page 1                        (printed 10/23/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  71.  
  72.  
  73.  
  74.       should be self-explanatory.
  75.  
  76.       The most common uses of the interactive modes    are
  77.  
  78.       Searching for    authors, bundles, distribution files and modules
  79.         There are corresponding one-letter commands    a, b, d, and m
  80.         for    each of    the four categories and    another, i for any of
  81.         the    mentioned four.    Each of    the four entities is
  82.         implemented    as a class with    slightly differing methods for
  83.         displaying an object.
  84.  
  85.         Arguments you pass to these    commands are either strings
  86.         exactly matching the identification    string of an object or
  87.         regular expressions    that are then matched case-
  88.         insensitively against various attributes of    the objects.
  89.         The    parser recognizes a regular expression only if you
  90.         enclose it between two slashes.
  91.  
  92.         The    principle is that the number of    found objects
  93.         influences how an item is displayed. If the    search finds
  94.         one    item, the result is displayed as object->as_string,
  95.         but    if we find more    than one, we display each as object-
  96.         >as_glimpse. E.g.
  97.  
  98.         cpan> a    ANDK
  99.         Author id = ANDK
  100.             EMAIL     a.koenig@franz.ww.TU-Berlin.DE
  101.             FULLNAME     Andreas Kvnig
  102.  
  103.         cpan> a    /andk/
  104.         Author id = ANDK
  105.             EMAIL     a.koenig@franz.ww.TU-Berlin.DE
  106.             FULLNAME     Andreas Kvnig
  107.  
  108.         cpan> a    /and.*rt/
  109.         Author        ANDYD (Andy Dougherty)
  110.         Author        MERLYN (Randal L. Schwartz)
  111.  
  112.  
  113.       make,    test, install, clean  modules or distributions
  114.         These commands take    any number of arguments    and
  115.         investigate    what is    necessary to perform the action. If
  116.         the    argument is a distribution file    name (recognized by
  117.         embedded slashes), it is processed.    If it is a module,
  118.         CPAN determines the    distribution file in which this    module
  119.         is included    and processes that.
  120.  
  121.         Any    make or    test are run unconditionally. An
  122.  
  123.           install <distribution_file>
  124.  
  125.         also is run    unconditionally. But for
  126.  
  127.  
  128.  
  129.      Page 2                        (printed 10/23/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  137.  
  138.  
  139.  
  140.           install <module>
  141.  
  142.         CPAN checks    if an install is actually needed for it    and
  143.         prints _m_o_d_u_l_e _u_p _t_o    _d_a_t_e in    the case that the distribution
  144.         file containing the    module doesn't need to be updated.
  145.  
  146.         CPAN also keeps track of what it has done within the
  147.         current session and    doesn't    try to build a package a
  148.         second time    regardless if it succeeded or not. The force
  149.         command takes as a first argument the method to invoke
  150.         (currently:    make, test, or install)    and executes the
  151.         command from scratch.
  152.  
  153.         Example:
  154.  
  155.         cpan> install OpenGL
  156.         OpenGL is up to    date.
  157.         cpan> force install OpenGL
  158.         Running    make
  159.         OpenGL-0.4/
  160.         OpenGL-0.4/COPYRIGHT
  161.         [...]
  162.  
  163.         A clean command results in a
  164.  
  165.           make clean
  166.  
  167.         being executed within the distribution file's working
  168.         directory.
  169.  
  170.       readme, look module or distribution
  171.         These two commands take only one argument, be it a module
  172.         or a distribution file. readme unconditionally runs,
  173.         displaying the README of the associated distribution file.
  174.         Look gets and untars (if not yet done) the distribution
  175.         file, changes to the appropriate directory and opens a
  176.         subshell process in    that directory.
  177.  
  178.       Signals
  179.         CPAN.pm installs signal handlers for SIGINT    and SIGTERM.
  180.         While you are in the cpan-shell it is intended that    you
  181.         can    press ^C anytime and return to the cpan-shell prompt.
  182.         A SIGTERM will cause the cpan-shell    to clean up and    leave
  183.         the    shell loop. You    can emulate the    effect of a SIGTERM by
  184.         sending two    consecutive SIGINTs, which usually means by
  185.         pressing ^C    twice.
  186.  
  187.         CPAN.pm ignores a SIGPIPE. If the user sets
  188.         inactivity_timeout,    a SIGALRM is used during the run of
  189.         the    perl Makefile.PL subprocess.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.      Page 3                        (printed 10/23/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  203.  
  204.  
  205.  
  206.       CCCCPPPPAAAANNNN::::::::SSSShhhheeeellllllll
  207.  
  208.       The commands that are    available in the shell interface are
  209.       methods in the package CPAN::Shell. If you enter the shell
  210.       command, all your input is split by the
  211.       _T_e_x_t::_P_a_r_s_e_W_o_r_d_s::_s_h_e_l_l_w_o_r_d_s() routine which acts like most
  212.       shells do. The first word is being interpreted as the    method
  213.       to be    called and the rest of the words are treated as
  214.       arguments to this method. Continuation lines are supported
  215.       if a line ends with a    literal    backslash.
  216.  
  217.       aaaauuuuttttoooobbbbuuuunnnnddddlllleeee
  218.  
  219.       autobundle writes a bundle file into the $CPAN::Config-
  220.       >{cpan_home}/Bundle directory. The file contains a list of
  221.       all modules that are both available from CPAN    and currently
  222.       installed within @INC. The name of the bundle    file is    based
  223.       on the current date and a counter.
  224.  
  225.       rrrreeeeccccoooommmmppppiiiilllleeee
  226.  
  227.       _r_e_c_o_m_p_i_l_e() is a very    special    command    in that    it takes no
  228.       argument and runs the    make/test/install cycle    with brute
  229.       force    over all installed dynamically loadable    extensions
  230.       (aka XS modules) with    'force'    in effect. The primary purpose
  231.       of this command is to    finish a network installation.
  232.       Imagine, you have a common source tree for two different
  233.       architectures. You decide to do a completely independent
  234.       fresh    installation. You start    on one architecture with the
  235.       help of a Bundle file    produced earlier. CPAN installs    the
  236.       whole    Bundle for you,    but when you try to repeat the job on
  237.       the second architecture, CPAN    responds with a    "Foo up    to
  238.       date"    message    for all    modules. So you    invoke CPAN's
  239.       recompile on the second architecture and you're done.
  240.  
  241.       Another popular use for recompile is to act as a rescue in
  242.       case your perl breaks    binary compatibility. If one of    the
  243.       modules that CPAN uses is in turn depending on binary
  244.       compatibility    (so you    cannot run CPAN    commands), then    you
  245.       should try the CPAN::Nox module for recovery.
  246.  
  247.       TTTThhhheeee ffffoooouuuurrrr CCCCPPPPAAAANNNN::::::::**** Classes: Author, Bundle, Module,
  248.       Distribution
  249.  
  250.       Although it may be considered    internal, the class hierarchy
  251.       does matter for both users and programmer. CPAN.pm deals
  252.       with above mentioned four classes, and all those classes
  253.       share    a set of methods. A classical single polymorphism is
  254.       in effect. A metaclass object    registers all objects of all
  255.       kinds    and indexes them with a    string.    The strings
  256.       referencing objects have a separated namespace (well,    not
  257.       completely separated):
  258.  
  259.  
  260.  
  261.      Page 4                        (printed 10/23/98)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  269.  
  270.  
  271.  
  272.            Namespace                 Class
  273.  
  274.          words containing a    "/" (slash)     Distribution
  275.           words starting with Bundle::        Bundle
  276.             everything else           Module or Author
  277.  
  278.       Modules know their associated    Distribution objects. They
  279.       always refer to the most recent official release. Developers
  280.       may mark their releases as unstable development versions (by
  281.       inserting an underbar    into the visible version number), so
  282.       the really hottest and newest    distribution file is not
  283.       always the default.  If a module Foo circulates on CPAN in
  284.       both version 1.23 and    1.23_90, CPAN.pm offers    a convenient
  285.       way to install version 1.23 by saying
  286.  
  287.           install Foo
  288.  
  289.       This would install the complete distribution file (say
  290.       BAR/Foo-1.23.tar.gz) with all    accompanying material. But if
  291.       you would like to install version 1.23_90, you need to know
  292.       where    the distribution file resides on CPAN relative to the
  293.       authors/id/ directory. If the    author is BAR, this might be
  294.       BAR/Foo-1.23_90.tar.gz; so you would have to say
  295.  
  296.           install BAR/Foo-1.23_90.tar.gz
  297.  
  298.       The first example will be driven by an object    of the class
  299.       CPAN::Module,    the second by an object    of class
  300.       CPAN::Distribution.
  301.  
  302.       PPPPrrrrooooggggrrrraaaammmmmmmmeeeerrrr''''ssss iiiinnnntttteeeerrrrffffaaaacccceeee
  303.  
  304.       If you do not    enter the shell, the available shell commands
  305.       are both available as    methods    (CPAN::Shell->install(...))
  306.       and as functions in the calling package (install(...)).
  307.  
  308.       There's currently only one class that    has a stable interface
  309.       - CPAN::Shell. All commands that are available in the    CPAN
  310.       shell    are methods of the class CPAN::Shell. Each of the
  311.       commands that    produce    listings of modules (r,    autobundle, u)
  312.       returns a list of the    IDs of all modules within the list.
  313.  
  314.       expand($type,@things)
  315.         The    IDs of all objects available within a program are
  316.         strings that can be    expanded to the    corresponding real
  317.         objects with the CPAN::Shell->expand("Module",@things)
  318.         method. Expand returns a list of CPAN::Module objects
  319.         according to the @things arguments given. In scalar
  320.         context it only returns the    first element of the list.
  321.  
  322.       Programming Examples
  323.         This enables the programmer    to do operations that combine
  324.  
  325.  
  326.  
  327.      Page 5                        (printed 10/23/98)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  335.  
  336.  
  337.  
  338.         functionalities that are available in the shell.
  339.  
  340.         # install everything that is outdated on my disk:
  341.         perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'
  342.  
  343.         # install my favorite programs if necessary:
  344.         for $mod (qw(Net::FTP MD5 Data::Dumper)){
  345.             my $obj = CPAN::Shell->expand('Module',$mod);
  346.             $obj->install;
  347.         }
  348.  
  349.         # list all modules on my disk that have    no VERSION number
  350.         for $mod (CPAN::Shell->expand("Module","/./")){
  351.             next unless    $mod->inst_file;
  352.             # MakeMaker    convention for undefined $VERSION:
  353.             next unless    $mod->inst_version eq "undef";
  354.             print "No VERSION in ", $mod->id, "\n";
  355.         }
  356.  
  357.  
  358.       MMMMeeeetttthhhhooooddddssss iiiinnnn tttthhhheeee ffffoooouuuurrrr
  359.  
  360.       CCCCaaaacccchhhheeee    MMMMaaaannnnaaaaggggeeeerrrr
  361.  
  362.       Currently the    cache manager only keeps track of the build
  363.       directory ($CPAN::Config->{build_dir}). It is    a simple FIFO
  364.       mechanism that deletes complete directories below build_dir
  365.       as soon as the size of all directories there gets bigger
  366.       than $CPAN::Config->{build_cache} (in    MB). The contents of
  367.       this cache may be used for later re-installations that you
  368.       intend to do manually, but will never    be trusted by CPAN
  369.       itself. This is due to the fact that the user    might use
  370.       these    directories for    building modules on different
  371.       architectures.
  372.  
  373.       There    is another directory ($CPAN::Config-
  374.       >{keep_source_where})    where the original distribution    files
  375.       are kept. This directory is not covered by the cache manager
  376.       and must be controlled by the    user. If you choose to have
  377.       the same directory as    build_dir and as keep_source_where
  378.       directory, then your sources will be deleted with the    same
  379.       fifo mechanism.
  380.  
  381.       BBBBuuuunnnnddddlllleeeessss
  382.  
  383.       A bundle is just a perl module in the    namespace Bundle::
  384.       that does not    define any functions or    methods. It usually
  385.       only contains    documentation.
  386.  
  387.       It starts like a perl    module with a package declaration and
  388.       a $VERSION variable. After that the pod section looks    like
  389.       any other pod    with the only difference being that _o_n_e
  390.  
  391.  
  392.  
  393.      Page 6                        (printed 10/23/98)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  401.  
  402.  
  403.  
  404.       _s_p_e_c_i_a_l _p_o_d _s_e_c_t_i_o_n exists starting with (verbatim):
  405.  
  406.           =head1 CONTENTS
  407.  
  408.       In this pod section each line    obeys the format
  409.  
  410.           Module_Name [Version_String] [- optional text]
  411.  
  412.       The only required part is the    first field, the name of a
  413.       module (e.g. Foo::Bar, ie. _n_o_t the name of the distribution
  414.       file). The rest of the line is optional. The comment part is
  415.       delimited by a dash just as in the man page header.
  416.  
  417.       The distribution of a    bundle should follow the same
  418.       convention as    other distributions.
  419.  
  420.       Bundles are treated specially    in the CPAN package. If    you
  421.       say 'install Bundle::Tkkit' (assuming    such a bundle exists),
  422.       CPAN will install all    the modules in the CONTENTS section of
  423.       the pod. You can install your    own Bundles locally by placing
  424.       a conformant Bundle file somewhere into your @INC path. The
  425.       _a_u_t_o_b_u_n_d_l_e() command which is    available in the shell
  426.       interface does that for you by including all currently
  427.       installed modules in a snapshot bundle file.
  428.  
  429.       PPPPrrrreeeerrrreeeeqqqquuuuiiiissssiiiitttteeeessss
  430.  
  431.       If you have a    local mirror of    CPAN and can access all    files
  432.       with "file:" URLs, then you only need    a perl better than
  433.       perl5.003 to run this    module.    Otherwise Net::FTP is strongly
  434.       recommended. LWP may be required for non-UNIX    systems    or if
  435.       your nearest CPAN site is associated with an URL that    is not
  436.       ftp:.
  437.  
  438.       If you have neither Net::FTP nor LWP,    there is a fallback
  439.       mechanism implemented    for an external    ftp command or for an
  440.       external lynx    command.
  441.  
  442.       FFFFiiiinnnnddddiiiinnnngggg ppppaaaacccckkkkaaaaggggeeeessss aaaannnndddd VVVVEEEERRRRSSSSIIIIOOOONNNN
  443.  
  444.       This module presumes that all    packages on CPAN
  445.  
  446.       +o declare their $VERSION variable in an easy to parse
  447.         manner. This prerequisite can hardly be relaxed because it
  448.         consumes far too much memory to load all packages into the
  449.         running program just to determine the $VERSION variable.
  450.         Currently all programs that    are dealing with version use
  451.         something like this
  452.  
  453.         perl -MExtUtils::MakeMaker -le \
  454.             'print MM->parse_version($ARGV[0])'    filename
  455.  
  456.  
  457.  
  458.  
  459.      Page 7                        (printed 10/23/98)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  467.  
  468.  
  469.  
  470.         If you are author of a package and wonder if your $VERSION
  471.         can    be parsed, please try the above    method.
  472.  
  473.       +o come as compressed or gzipped tarfiles or as zip files and
  474.         contain a Makefile.PL (well, we try    to handle a bit    more,
  475.         but    without    much enthusiasm).
  476.  
  477.       DDDDeeeebbbbuuuuggggggggiiiinnnngggg
  478.  
  479.       The debugging    of this    module is pretty difficult, because we
  480.       have interferences of    the software producing the indices on
  481.       CPAN,    of the mirroring process on CPAN, of packaging,    of
  482.       configuration, of synchronicity, and of bugs within CPAN.pm.
  483.  
  484.       In interactive mode you can try "o debug" which will list
  485.       options for debugging    the various parts of the package. The
  486.       output may not be very useful    for you    as it's    just a by-
  487.       product of my    own testing, but if you    have an    idea which
  488.       part of the package may have a bug, it's sometimes worth to
  489.       give it a try    and send me more specific output. You should
  490.       know that "o debug" has built-in completion support.
  491.  
  492.       FFFFllllooooppppppppyyyy,,,, ZZZZiiiipppp,,,, aaaannnndddd aaaallllllll tttthhhhaaaatttt JJJJaaaazzzzzzzz
  493.  
  494.       CPAN.pm works    nicely without network too. If you maintain
  495.       machines that    are not    networked at all, you should consider
  496.       working with file:  URLs. Of course, you have    to collect
  497.       your modules somewhere first.    So you might use CPAN.pm to
  498.       put together all you need on a networked machine. Then copy
  499.       the $CPAN::Config->{keep_source_where} (but not
  500.       $CPAN::Config->{build_dir}) directory    on a floppy. This
  501.       floppy is kind of a personal CPAN. CPAN.pm on    the non-
  502.       networked machines works nicely with this floppy.
  503.  
  504.      CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN
  505.       When the CPAN    module is installed, a site wide configuration
  506.       file is created as CPAN/Config.pm. The default values
  507.       defined there    can be overridden in another configuration
  508.       file:    CPAN/MyConfig.pm. You can store    this file in
  509.       $HOME/.cpan/CPAN/MyConfig.pm if you want, because
  510.       $HOME/.cpan is added to the search path of the CPAN module
  511.       before the _u_s_e() or _r_e_q_u_i_r_e()    statements.
  512.  
  513.       Currently the    following keys in the hash reference
  514.       $CPAN::Config    are defined:
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.      Page 8                        (printed 10/23/98)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  533.  
  534.  
  535.  
  536.         build_cache           size of cache for directories to    build modules
  537.         build_dir           locally accessible directory to build modules
  538.         index_expire       after this many days refetch index files
  539.         cpan_home           local directory reserved    for this package
  540.         gzip           location    of external program gzip
  541.         inactivity_timeout breaks interactive Makefile.PLs after this
  542.                    many seconds inactivity.    Set to 0 to never break.
  543.         inhibit_startup_message
  544.                    if true,    does not print the startup message
  545.         keep_source           keep the    source in a local directory?
  546.         keep_source_where  directory in which to keep the source (if we do)
  547.         make           location    of external make program
  548.         make_arg           arguments that should always be passed to 'make'
  549.         make_install_arg   same as make_arg    for 'make install'
  550.         makepl_arg           arguments passed    to 'perl Makefile.PL'
  551.         pager           location    of external program more (or any pager)
  552.         tar               location    of external program tar
  553.         unzip           location    of external program unzip
  554.         urllist           arrayref    to nearby CPAN sites (or equivalent locations)
  555.         wait_list           arrayref    to a wait server to try    (See CPAN::WAIT)
  556.  
  557.       You can set and query    each of    these options interactively in
  558.       the cpan shell with the command set defined within the o
  559.       conf command:
  560.  
  561.       o conf <scalar option>
  562.         prints the current value of    the _s_c_a_l_a_r _o_p_t_i_o_n
  563.  
  564.       o conf <scalar option> <value>
  565.         Sets the value of the _s_c_a_l_a_r _o_p_t_i_o_n    to _v_a_l_u_e
  566.  
  567.       o conf <list option>
  568.         prints the current value of    the _l_i_s_t _o_p_t_i_o_n    in MakeMaker's
  569.         neatvalue format.
  570.  
  571.       o conf <list option> [shift|pop]
  572.         shifts or pops the array in    the _l_i_s_t _o_p_t_i_o_n    variable
  573.  
  574.       o conf <list option> [unshift|push|splice] <list>
  575.         works like the corresponding perl commands.
  576.  
  577.       CCCCDDDD----RRRROOOOMMMM ssssuuuuppppppppoooorrrrtttt
  578.  
  579.       The urllist parameter    of the configuration table contains a
  580.       list of URLs that are    to be used for downloading. If the
  581.       list contains    any file URLs, CPAN always tries to get    files
  582.       from there first. This feature is disabled for index files.
  583.       So the recommendation    for the    owner of a CD-ROM with CPAN
  584.       contents is: include your local, possibly outdated CD-ROM as
  585.       a file URL at    the end    of urllist, e.g.
  586.  
  587.         o conf urllist push    file://localhost/CDROM/CPAN
  588.  
  589.  
  590.  
  591.      Page 9                        (printed 10/23/98)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  599.  
  600.  
  601.  
  602.       CPAN.pm will then fetch the index files from one of the CPAN
  603.       sites    that come at the beginning of urllist. It will later
  604.       check    for each module    if there is a local copy of the    most
  605.       recent version.
  606.  
  607.      SSSSEEEECCCCUUUURRRRIIIITTTTYYYY
  608.       There's no strong security layer in CPAN.pm. CPAN.pm helps
  609.       you to install foreign, unmasked, unsigned code on your
  610.       machine. We compare to a checksum that comes from the    net
  611.       just as the distribution file    itself.    If somebody has
  612.       managed to tamper with the distribution file,    they may have
  613.       as well tampered with    the CHECKSUMS file. Future development
  614.       will go towards strong authentification.
  615.  
  616.      EEEEXXXXPPPPOOOORRRRTTTT
  617.       Most functions in package CPAN are exported per default. The
  618.       reason for this is that the primary use is intended for the
  619.       cpan shell or    for oneliners.
  620.  
  621.      BBBBUUUUGGGGSSSS
  622.       We should give coverage for _all_ of the CPAN    and not    just
  623.       the PAUSE part, right? In this discussion CPAN and PAUSE
  624.       have become equal -- but they    are not. PAUSE is authors/ and
  625.       modules/. CPAN is PAUSE plus the clpa/, doc/,    misc/, ports/,
  626.       src/,    scripts/.
  627.  
  628.       Future development should be directed    towards    a better
  629.       integration of the other parts.
  630.  
  631.       If a Makefile.PL requires special customization of
  632.       libraries, prompts the user for special input, etc. then you
  633.       may find CPAN    is not able to build the distribution. In that
  634.       case,    you should attempt the traditional method of building
  635.       a Perl module    package    from a shell.
  636.  
  637.      AAAAUUUUTTTTHHHHOOOORRRR
  638.       Andreas Kvnig    <a.koenig@mind.de>
  639.  
  640.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  641.       _p_e_r_l(1), _C_P_A_N::_N_o_x(3)
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.      Page 10                        (printed 10/23/98)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      CCCCPPPPAAAANNNN((((3333))))         22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))           CCCCPPPPAAAANNNN((((3333))))
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.      Page 11                        (printed 10/23/98)
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.